package com.open.capacity.workflow.model.WFEngine;

import lombok.Data;

import java.io.Serializable;
import java.util.List;


/**
 * 工作流节点
 */
@Data
public class WFNodeInfo implements Serializable {

    private static final long serialVersionUID = 749360940290141180L;

    //节点id
    private String id;
    //节点名称
    private String name;

    //临时记录上一个节点id
    private String previousId;

    private Integer left;

    private Integer top;

    private Integer width;

    private Integer height;

    //节点类型-》开始startround;结束endround;一般stepnode;会签节点:confluencenode;条件判断节点：conditionnode;查阅节点：auditornode;子流程节点：childwfnode
    private String type;
    //超时时间（超时后可流转下一节点）默认24小时
    private Integer timeoutAction;
    //超时时间（发出通知）默认24小时
    private Integer timeoutNotice;
    //会签策略1-所有步骤通过，2-一个步骤通过即可，3-按百分比计算
    private Integer confluenceType;
    //会签比例
    private String confluenceRate;
    //审核者们
    private List<WFAuditor> auditors;
    //字段权限数据
    private List<WFAuthorizeField> authorizeFields;
    //节点绑定的表单
    private List<WFForm> forms;
    //绑定的方法（通过ioc注册实现）
    private String iocName;
    //成功后需要执行的sql语句对应的数据库主键
    private String dbSuccessId;
    //成功后需要执行的sql语句
    private String dbSuccessSql;
    //驳回后需要执行的sql语句对应的数据库主键
    private String dbFailId;
    //驳回后需要执行的sql语句
    private String dbFailSql;

    //绑定的方法（通过ioc注册实现）会签
    private String cfIocName;
    //会签后需要执行的sql语句对应的数据库主键
    private String cfDbId;
    //会签后需要执行的sql语句
    private String cfDbSql;
    //会签结果
    private Boolean cfres;


    //工作流条件节点-条件字段（优先执行）
    private List<WFCondition> conditions;
    //条件判断sql语句所在数据库主键
    private String dbConditionId;
    //条件判断sql语句
    private String conditionSql;


}